package ui.juego

import dominio.individuos.CuidadorAjeno
import dominio.individuos.CuidadorEnTrampa
import dominio.individuos.Informante
import dominio.individuos.Villano
import dominio.ubicaciones.Lugar
import org.uqbar.commons.utils.Observable

@Observable
class VisitarLugar {
	
	@Property Investigacion investigacion
	@Property Lugar lugar
	@Property String infoAMostrar
	
	new(Investigacion investigacion, Lugar lugar) {
		this.investigacion = investigacion
		this.lugar = lugar
		this.infoAMostrar = lugar.ocupante.infoCompleta
	}
	
	def dispatch String infoCompleta(Informante it)'''
«FOR info : pistas»
«info.nombreTipoInfo» - «info.dato»
«ENDFOR»

Espero haber ayudado!'''

	def dispatch String infoCompleta(Villano it)'''
«IF investigacion.ordenEmitida»
ALTO!!! Detengase: "«investigacion.ordenDeArresto.responsable.nombre»"
«ELSE» La detencion no es posible, no realizo ninguna orden de arresto
«ENDIF»
'''

	def dispatch String infoCompleta(CuidadorAjeno it)'''
Lo siento, creo que le ha pifiado al país.
Acá no hay nadie con esas caracteristicas!'''

	def dispatch String infoCompleta(CuidadorEnTrampa it)'''
CUIDADO DETECTIVE!! Ha estado a punto de caer en 
una trampa... La persona que busca esta en el país!'''
	
	
	def puedeTerminarJuego() {
		lugar.ocupante.esVillano &&
		investigacion.ordenEmitida	
	}
	
}